﻿using System;
using System.Collections.Generic;
using System.Data;
using Entersoft.Data.DotNetDAL.SQL;

namespace BLL
{
    public class AsignacionLider: Common
    {
        // sp_get_AsignacionLider
        public static IList<Usuario> ObtenerLideresDisponibles(string Periodo)
        {
            var retorno = new List<Usuario>();

            var objRP = new Entersoft.Data.DotNetResponse.SQL.Persistence { StoredProcedure = "SP_GET_ASIGNACION_LIDER" };

            using (var objConn = new Persistence(false, ConnDB))
            {
                objRP.AddParametro(Periodo);

                objConn.ExecuteDataTable(ref objRP);

                if (!objRP.TieneErrores)
                    if (objRP.DataTable != null)
                    {
                        foreach (DataRow row in objRP.DataTable.Rows)
                        {
                            int LiderId;

                            LiderId = Convert.ToInt32(row["LiderId"].ToString());
                            var errMessage = "";

                            var tmpListaLideres = Usuarios.ObtenerLideres(LiderId, ref errMessage);

                            if (string.IsNullOrEmpty(errMessage))
                                foreach (var tmpUsuario in tmpListaLideres)
                                {
                                    if (!tmpUsuario.UserId.Equals(LiderId)) continue;

                                    retorno.Add(tmpUsuario);
                                    break;
                                }
                        }
                    }
            }

            objRP.Dispose();

            return retorno;
        }
        /*
        */
        public static bool Asignar(string Periodo, int BodegaId, int Nrotoma, int LiderId)
        {
            var message = "";

            return Asignar(Periodo, BodegaId, Nrotoma, LiderId, ref message);
        }

        public static bool Asignar(string Periodo, int BodegaId, int Nrotoma, int LiderId, ref string message)
        {
            var retorno = false;

            var objRP = new Entersoft.Data.DotNetResponse.SQL.Persistence { StoredProcedure = "sp_upd_AsignacionLider" };

            using (var objConn = new Persistence(true, ConnDB))
            {
                objRP.AddParametro(Periodo);
                objRP.AddParametro(BodegaId);
                objRP.AddParametro(Nrotoma);
                objRP.AddParametro(LiderId);

                objConn.ExecuteDataTable(ref objRP);

                if (!objRP.TieneErrores)
                {
                    if (objRP.DataTable != null)
                    {
                        retorno = objRP.DataTable.Rows[0][0].Equals(0);
                        message = objRP.DataTable.Rows[0][1].ToString();
                    }
                }
                else
                    message = objRP.DataTable.Rows[0][1].ToString();

                if (retorno)
                    objConn.Commit();
            }

            objRP.Dispose();

            return retorno;
        }

/*
        public static bool AsignarNuevoUsuario(string Periodo)
        {
            var retorno = false;

            var objRP = new Entersoft.Data.DotNetResponse.SQL.Persistence { StoredProcedure = "SP_INS_ASIGNACION_LIDER" };

            using (var objConn = new Persistence(true, ConnDB))
            {
                objRP.AddParametro(Periodo);

                objConn.ExecuteDataTable(ref objRP);

                if (!objRP.TieneErrores)
                    if (objRP.DataTable != null)
                        retorno = objRP.DataTable.Rows[0][0].Equals(0);

                if (retorno)
                    objConn.Commit();
            }

            objRP.Dispose();

            return retorno;
        }
*/
    }
}
